Org-mode
contains a number of variables regulating agenda construction and
display. The global variables define the behavior for all agenda
commands, including the custom commands. However, if you want to
change some settings just for a single custom view, you can do
so. Setting options requires inserting a list of variable names
and values at the right spot in
org-agenda-custom-commands. For example:
(setq org-agenda-custom-commands
'(("w" todo "WAITING"
((org-agenda-sorting-strategy '(priority-down))
(org-agenda-prefix-format " Mixed: ")))
("U" tags-tree "+boss-urgent"
((org-show-following-heading nil)
(org-show-hierarchy-above nil)))
("N" search ""
((org-agenda-files '("~org/notes.org"))
(org-agenda-text-search-extra-files nil)))))
Now the C-c a w command will sort the collected entries only by priority, and the prefix format is modified to just say ‘ Mixed: ’ instead of giving the category of the entry. The sparse tags tree of C-c a U will now turn out ultra-compact, because neither the headline hierarchy above the match, nor the headline following the match will be shown. The command C-c a N will do a text search limited to only a single file.
For
command sets creating a block agenda,
org-agenda-custom-commands has two separate spots
for setting options. You can add options that should be valid for
just a single command in the set, and options that should be
valid for all commands in the set. The former are just added to
the command entry; the latter must come after the list of command
entries. Going back to the block agenda example (see Block agenda), let's change
the sorting strategy for the C-c a h commands to
priority-down, but let's sort the results for GARDEN
tags query in the opposite order, priority-up. This
would look like this:
(setq org-agenda-custom-commands
'(("h" "Agenda and Home-related tasks"
((agenda)
(tags-todo "home")
(tags "garden"
((org-agenda-sorting-strategy '(priority-up)))))
((org-agenda-sorting-strategy '(priority-down))))
("o" "Agenda and Office-related tasks"
((agenda)
(tags-todo "work")
(tags "office")))))
As you see, the values and parentheses setting is a little complex. When in doubt, use the customize interface to set this variable—it fully supports its structure. Just one caveat: when setting options in this interface, the values are just Lisp expressions. So if the value is a string, you need to add the double-quotes around the value yourself.